As web sites become more important to commerce, education, governmental functions and other aspects of society, entities controlling web sites are increasingly interested in setting performance goals and quality standards for their web sites. Particularly, entities are interested in how quickly their web servers (and related other servers such as application and database servers) respond to defined actions by an end-user.
A business for example, may be interested in how quickly its web server responds in aggregate to user requests to add items to a virtual shopping cart. A particular user action on a web page, such as clicking on an “Add to Cart” button, however, may generate multiple HTTP requests, some of which may contain many parameters. The user-action action of selecting the Add to Cart button may cause, for example, the web browser to generate requests with parameters related to the particular user and item, requests for static and dynamic content and other requests. Moreover, the user action can cause different requests to be generated depending on the context of the action. For example, the same action taken by a different user can cause different HTTP requests to be generated.
The information technology (IT) infrastructure which processes these transactions may be a complex infrastructure of intertwined computers, applications, operating systems, etc. Thus, the completion of a transaction may entail a variety of communications between the different servers or applications that make up the IT infrastructure. Consequently, it may be difficult to track the various actions within an IT infrastructure that are associated with a particular transaction.
Typically, to solve these problems a management system is utilized. Management systems may, in turn, utilize agents to fulfill application monitoring and control tasks. In other words, these agents are deployed in conjunction with the servers or applications themselves in order to monitor the servers or applications in the IT infrastructure. This solution is not without its problems, however. The task of identifying application components and servers associated with an application, and thus are candidates for deployment, is tedious and usually this knowledge is not easily available.
Furthermore, the deployment of agents in conjunction with various applications usually requires a large degree of maintenance, as an IT infrastructure may experience frequent changes such as moving an application component from one device to another, the addition of various devices or applications, etc. This installation of agents is therefore manual by nature and is crucial to the correct behavior of a management system, otherwise the management system will not accurately track transactions. Accordingly, the installation and upkeep of agents associated with a management system may be manually intensive task which consumes a relatively large percentage of an IT manager's time or resources in order to track application changes and manually reflect them in the configuration of the application management system and its associated agents. Because management systems may consume a disproportionate amount of an IT managers time, these management systems may become a less attractive solution for many application management projects.
Thus, a need exists for deploying agents for the monitoring of applications or devices in a more automated manner.